#pragma once
#include "Key.h"

namespace AppliedCryptography
{
	namespace AC = AppliedCryptography;

	template<unsigned int TKeySize, unsigned int TBlockSize>
	class Cryptor
	{
	public:
		virtual void Process(const AC::Block<TBlockSize>& plaintext, AC::Block<TBlockSize>& chyper) const = 0;
		virtual const AC::Key<TKeySize>& Key() const = 0;
		virtual void SetKey(const AC::Key<TKeySize>& key) = 0;
	};
};
